﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Collections;
using IBatisNet.DataMapper;
using TumbaloSoft.Models;
using TumbaloSoft.Helpers.QueryObjects;

namespace TumbaloSoft.Helpers
{
    public class HelperTransferencia
    {
        public static void insert(Transferencia transferencia)
        {
            Mapper.Instance().Insert("TransferenciaInsert", transferencia);
        }
        public static List<Transferencia> buscar(BusquedaPagos query)
        {
            IList transferencias = Mapper.Instance().QueryForList("TransferenciaBusqueda", query);
            List<Transferencia>  listaTransferencias = new List<Transferencia>(transferencias.Cast<Transferencia>());
            foreach (Transferencia transferencia in listaTransferencias)
            {
                transferencia.prDepartamento = HelperDepartamento.selectById(transferencia.prDepartamento.prIdDepartamento);
            }
            return listaTransferencias;
        }
        public static List<Transferencia> buscarHistorial(BusquedaHistorialPagos query)
        {
            List<Transferencia> listaTransferencias = new List<Transferencia>(Mapper.Instance().QueryForList<Transferencia>("TransferenciaHistorialBusqueda", query));
            foreach (Transferencia trans in listaTransferencias)
            {
                Cuota cuota = HelperCuota.selectById(trans.prIdCuota);
                trans.prIdCuota = cuota.prIdCuota;
                trans.prMonto = cuota.prMonto;
                trans.prDepartamento = cuota.prDepartamento;
                trans.prEstado = cuota.prEstado;
                trans.prFechaEmision = cuota.prFechaEmision;
                trans.prFechaPago = cuota.prFechaPago;
                trans.prFechaVencimiento = cuota.prFechaVencimiento;
            }
            return listaTransferencias;
        }
        public static Transferencia selectById(string prIdTransferencia, int prIdCuota)
        {
            Transferencia trans = new Transferencia();
            trans.prIdCuota = prIdCuota;
            trans.prIdTransferencia = prIdTransferencia;
            Transferencia transferencia = Mapper.Instance().QueryForObject<Transferencia>("TransferenciaSelectById", trans);
            return transferencia;
        }
        public static void aprobar(Transferencia transferencia)
        {
            Mapper.Instance().Update("TransferenciaAprobarUpdate", transferencia);
        }
        public static bool existe(Transferencia transferencia)
        {
            if (Mapper.Instance().QueryForObject<Int32>("TransferenciaExiste", transferencia)==1) return true;
            return false;
        }
    }
}